package com.zcxy.sys.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zcxy.core.bean.PageQuery;
import com.zcxy.mybatis.bean.CommonStringParam;

import com.zcxy.mybatis.bean.SysUser;
import com.zcxy.sys.entity.VerificationCode;
import com.zcxy.sys.pojo.*;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;


/**
 * 用户 Service接口
 *
 * @author zcc
 * @email 860474958@qq.com
 * @date 2020-06-01
 */
public interface ISysUserService extends IService<SysUser> {
    /**
     * 用户：分页查询
     * <p>
     * PageQuery<T>
     *
     * @return Result<IPage < SysUserVo>>
     */
    IPage<SysUserVo> queryPageList(PageQuery<CommonStringParam> queryVo);

    /**
     * 用户：复杂列表查询
     * <p>
     * <SysUser>
     *
     * @return List<SysUserVo>
     */
    List<SysUserVo> queryList();

    /**
     * 用户：新增
     * <p>
     * <SysUser>
     *
     * @return void
     */
    void addSysUser(SysUser queryVo);

    /**
     * 用户:更新
     * <p>
     * <SysUser>
     *
     * @return void
     */
    void updateSysUser(SysUserVo queryVo);

    /**
     * 用户:删除
     * <p>
     * <SysUser>
     *
     * @return void
     */
    void removeSysUser(String id);


    /**
     * 用户:删除
     * <p>
     * <SysUser>
     *
     * @return void
     */
    List<String> removeAllSysUser(List<String> ids);


    void download(SysUser sysUser, HttpServletResponse response) throws IOException;

    void updateDisable(List<String> ids);

    void updateEnable(List<String> ids);

    SysUser selectbytoken();

    LoginVo login(SysUserLoginDto sysUser);


    EmailVo sendEmail(VerificationCode code);

    void validated(VerificationCode code);

    void updatePwd(SysUserResetPassWord code);

    SysUser uploadObjectAttachment(String url, String id);

    void checkEmail(String email);


    void LoginOut();


}
